home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / MeasureTrackLengths.AMOS / MeasureTrackLengths.amosSourceCode
Encoding:
AMOS Source Code  |  1998-07-31  |  1.2 KB  |  61 lines

  1. Screen Open 0,640,256,2,$8000
  2. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  3. Dev Open 0,"trackdisk.device",128,0,0
  4. TRK=0
  5. TLEN=24000
  6. Reserve As Chip Work 10,32*1024
  7. ST=Start(10)
  8. For TRK=0 To 159
  9.   Repeat 
  10.     Fill ST To ST+Length(10),$AAAAAAAA
  11.     DISKRAWWRITE[ST,TLEN,TRK]
  12.     Fill ST To ST+Length(10),0
  13.     Loke ST,$44894489
  14. '    MOTOROFF
  15. '    Wait 15 
  16.     DISKRAWWRITE[ST,4,TRK]
  17. '    MOTOROFF
  18.     WA=Rnd(150)
  19.     Wait WA
  20.     DISKRAWREAD[ST,TLEN,TRK]
  21.     T=0
  22.     For A=0 To TLEN-1
  23.       P=Peek(ST+A)
  24.       If P=$AA or P=$55 Then T=0 Else Inc T
  25.       Exit If T>3
  26.     Next 
  27.     F=A
  28.     T=0
  29.     For A=F+50 To TLEN-1
  30.       P=Peek(ST+A)
  31.       If P=$AA or P=$55 Then T=0 Else Inc T
  32.       Exit If T>3
  33.     Next 
  34.     TRKLEN=A-F
  35.     If A=TLEN Then TRKLEN=0
  36.   Until TRKLEN>12000
  37.      Extension_8_0472 "ram:test",10
  38.   Print "Track";TRK;":";TRKLEN;" (Wait:";WA;")"
  39. Next 
  40. MOTOROFF
  41. Dev Close 
  42. End 
  43. Procedure DISKRAWWRITE[AD,LE,OS]
  44.   IO=Dev Base(0)
  45.   Loke IO+36,1
  46.   Dev Do 0,9
  47.   Poke IO+30,0
  48.   Loke IO+36,LE : Loke IO+40,AD : Loke IO+44,OS
  49.   Dev Do 0,17
  50. End Proc
  51. Procedure DISKRAWREAD[AD,LE,OS]
  52.   IO=Dev Base(0)
  53.   Poke IO+30,0
  54.   Loke IO+36,LE : Loke IO+40,AD : Loke IO+44,OS
  55.   Dev Do 0,16
  56. End Proc
  57. Procedure MOTOROFF
  58.   IO=Dev Base(0)
  59.   Loke IO+36,0
  60.   Dev Do 0,9
  61. End Proc